/**
 * 静态方法，接收一个可迭代的promise对象，返回一个promise
 * 返回的promise的状态随第一个敲定状态的promise而敲定状态，并且状态保持一致
 * 传入空的promise则直接fulfilled
 * @param {*} promiseList 
 * @returns 
 */
function promiseRace(promiseList) {
    return new Promise((resolve, reject) => {
        if(!promiseList.length) {
            resolve([]);
            return;
        }
        promiseList.forEach((promise, index) => {
            Promise.resolve(promise)
            .then(resolve)
            .catch(reject)
        });
    });
}